// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import '../editing/editor.dart';
import '../elements/bind.dart';

class EditorDocumentProperty implements Property<String> {
  final Document document;
  final String debugName;

  EditorDocumentProperty(this.document, [this.debugName]);

  @override
  String get() => document.value;

  @override
  void set(String str) {
    document.value = str ?? '';
  }

  @override
  Stream<String> get onChanged => document.onChange.map((_) => get());
}
